import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";

// @ts-expect-error process is a nodejs global
const host = process.env.TAURI_DEV_HOST;

export default defineConfig(async () => ({
    css: {
        preprocessorOptions: {
            less: {
                javascriptEnabled: true,
                // additionalData: `@import "@/styles/var.less";`
            }
        }
    },
    // 配置插件
    plugins: [react()],
    // 禁止启动服务器和热更新时清空终端屏幕
    clearScreen: false,
    // 本地服务配置
    server: {
        port: 1420,
        // 确保服务绑定指定的端口，如果端口被占用则启动失败
        strictPort: true,
        host: host || false,
        // 热模块替换（HMR）配置
        hmr: host
            ? {
                // 热更新协议为 WebSocket
                protocol: "ws",
                // 热更新主机名
                host,
                // 热更新端口号
                port: 1421,
            }
            : undefined,
        // 文件监听配置
        watch: {
            // 忽略对 src-tauri 目录下所有文件的监听
            ignored: ["**/src-tauri/**"],
        },
    },
}));
